package top.mydb.hejianwei.utils;
import java.nio.ByteBuffer;

/*
 * 数据转换工具类
 * 用于在java基础数据类型和字节数组之间进行转换
 */
public class Parser {
    /*
     * 将long类型转换为8字节byte数组
     * @param value 要转换的long值
     * @return 转换后的byte数组
     */
    public static byte[] long2Bytes(long value) {
        byte[] bytes = new byte[8];
        ByteBuffer buffer = ByteBuffer.wrap(bytes);// 将字节数组包装成ByteBuffer
        // 使用putLong方法将long值写入ByteBuffer
        buffer.putLong(value);
        return bytes;
    }
    /*
        * 将byte数组转换为long类型
        * @param bytes 要转换的byte数组
        * @return 转换后的long值
        */
    public static long bytes2Long(byte[] bytes) {
        if (bytes.length != 8) {
            throw new IllegalArgumentException("Byte数组必须是8字节长");
        }
        ByteBuffer buffer = ByteBuffer.wrap(bytes); // 将字节数组包装成ByteBuffer
        return buffer.getLong(); // 使用getLong方法读取long值
    }

    // ... 你已有的 long <-> byte[] 方法 ...

    public static byte[] short2Bytes(short value) {
        return ByteBuffer.allocate(2).putShort(value).array();
    }

    public static short bytes2Short(byte[] buf, int offset) {
        ByteBuffer buffer = ByteBuffer.wrap(buf, offset, 2);
        return buffer.getShort();
    }
        // Parser.java
    public static byte[] int2Byte(int value) {
        return ByteBuffer.allocate(4).putInt(value).array();
    }

    public static int parseInt(byte[] buf) {
        ByteBuffer buffer = ByteBuffer.wrap(buf);
        return buffer.getInt();
    }
}
